package com.hamster.crm.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hamster.crm.mapper.ManagerGradeMapper;
import com.hamster.crm.pojo.ManagerGrade;
import com.hamster.crm.service.ManagerGradeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * （服务部、事业部）经理级别设置的service
 * @author Tarry
 * @create 2019/12/20 16:30
 */
@Service
public class ManagerGradeServiceImpl implements ManagerGradeService {
    @Autowired
    private ManagerGradeMapper managerGradeMapper;

    /**
     * 新增一条，经理级别设置记录
     * @param managerGrade
     */
    @Override
    public void insert(ManagerGrade managerGrade) {
        managerGrade.setId(null);//id 设为空
        managerGrade.setDel("0");  //设置记录状态为正常
        managerGrade.setInputTime(new Date()); //设置录入时间，为当前系统时间
        managerGrade.setInputUser("功能待完善");   //设置录入人
        managerGradeMapper.insert(managerGrade);
    }

    /**
     * 根据id删除经理级别设置记录
     * @param ids
     */
    @Override
    public void delete(List<String> ids) {
        //循环遍历 id 集合，进行逐条删除操作
        for (String id : ids) {
            managerGradeMapper.deleteTag(id);   //根据id 修改记录状态为1 逻辑删除
        }
    }

    /**
     * 根据id，获取一条，经理级别设置 记录
     * @param id
     * @return
     */
    @Override
    public ManagerGrade getManagerGradeById(String id) {
        ManagerGrade managerGrade = managerGradeMapper.selectById(id);
        return managerGrade;
    }

    /**
     * 修改一条 经理级别设置 记录
     * @param managerGrade
     */
    @Override
    public void updateManagerGrade(ManagerGrade managerGrade) {
        managerGrade.setInputUser("功能未完善");  //记录修改操作 人
        managerGrade.setInputTime(new Date());  //记录修改操作 时间
        managerGradeMapper.updateById(managerGrade);  //修改
    }

    /**
     * 获取不同部门的 经理级别设置 列表
     * @param department 部门参数   0服务部经理   1事业部经理
     * @return
     */
    @Override
    public List<ManagerGrade> listManagerGrades(String department) {
        QueryWrapper<ManagerGrade> wrapper = new QueryWrapper<>();
        //设置查询条件，del记录状态 为0 正常，department为对应部门
        wrapper.eq("del","0").eq("department",department)
                //根据分数等级，升序排序
        .orderByAsc("min_grade");
        List<ManagerGrade> list = managerGradeMapper.selectList(wrapper);
        return list;
    }
}
